public class prog {
    public static void main(String[] args) {
        MyLinKedList myLinKedList=new MyLinKedList();
        myLinKedList.addLast(1);
        myLinKedList.addFirst(2);
        myLinKedList.addFirst(3);
        myLinKedList.addFirst(4);
        myLinKedList.addFirst(5);
        myLinKedList.addIndex(0,1);
        myLinKedList.addIndex(1,2);
        myLinKedList.addIndex(2,3);
        myLinKedList.display();
        myLinKedList.remove(1);
        myLinKedList.remove(2);
        myLinKedList.remove(3);
        myLinKedList.display();
        myLinKedList.addIndex(0,1);
        myLinKedList.addIndex(1,1);
        myLinKedList.addIndex(2,1);
        myLinKedList.display();
        myLinKedList.clear();
        myLinKedList.display();
    }
}aa
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
//class Solution {
//    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//        ListNode newhead=new ListNode(-1);
//        ListNode cur=newhead;
//        int sum=0;
//        int count=0;
//        while(l1!=null&&l2!=null){
//            count=l1.val+l2.val+sum;
//            sum=count/10;
//            int tmp=count%10;
//            cur.next=new ListNode(tmp);
//            cur=cur.next;
//            l1=l1.next;
//            l2=l2.next;
//        }
//        while(l1!=null){
//            count=l1.val+sum;
//            sum=count/10;
//            int tmp=count%10;
//            cur.next=new ListNode(tmp);
//            cur=cur.next;
//            l1=l1.next;
//        }
//        while(l2!=null){
//            count=l2.val+sum;
//            sum=count/10;
//            int tmp=count%10;
//            cur.next=new ListNode(tmp);
//            cur=cur.next;
//            l2=l2.next;
//        }
//        if(sum>0){
//            cur.next=new ListNode(sum);
//        }
//        return newhead.next;
//    }
//}













/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
//class Solution {
//    public ListNode partition(ListNode head, int x) {
//        ListNode be=new ListNode(-1);
//        ListNode ae=new ListNode(-1);
//        ListNode as=ae;
//        ListNode bs=be;
//        ListNode cur=head;
//        while(cur!=null){
//            if(cur.val>=x){
//                as.next=cur;
//                as=as.next;
//            }else{
//                bs.next=cur;
//                bs=bs.next;
//            }
//            cur=cur.next;
//        }
//        as.next=null;
//        bs.next=ae.next;
//        return be.next;
//    }
//}










/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
//class Solution {
//    public ListNode removeNthFromEnd(ListNode head, int n) {
//        ListNode fast=head;
//        ListNode slow=head;
//        while(n>0){
//            n--;
//            fast=fast.next;
//        }
//        if(fast==null){
//            return head.next;
//        }
//        while(fast.next!=null){
//            fast=fast.next;
//            slow=slow.next;
//        }
//        slow.next=slow.next.next;
//        return head;
//    }
//}










/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
//public class Solution {
//    public ListNode detectCycle(ListNode head) {
//        ListNode slow=head;
//        ListNode fast=head;
//        while(true){
//            if(fast==null||fast.next==null){
//                return null;
//            }
//            fast=fast.next.next;
//            slow=slow.next;
//            if(slow==fast){
//                break;
//            }
//        }
//        fast=head;
//        while(fast!=slow){
//            fast=fast.next;
//            slow=slow.next;
//        }
//        return fast;
//    }
//}